package cz.mff.curreco.services;

import java.awt.image.BufferedImage;
import java.io.InputStream;

import cz.mff.curreco.model.Circle;
import cz.mff.curreco.model.CircleResultItem;
import cz.mff.curreco.model.OneCircleResult;

public interface IImageService {

	public int shapeRecognize(InputStream input);
	
	public BufferedImage threshold(BufferedImage image, int param); 
	
	//Iface for getting count of black pixels on defined circle in input stream
	public OneCircleResult getBlackPixelsOnCircle(Circle c,BufferedImage input, int halfSize);
	//Iface for getting all circles trough the picture
	public CircleResultItem getCircles(Circle c, int numberOfCircles, InputStream input, int halfSize);
	
	//Iface for normalizing picture
	public BufferedImage normalizeImage(InputStream input);
	
	public BufferedImage edgeDetection(BufferedImage image);
	
	public int getRadius(BufferedImage bi, double ratio);
	
	public Circle houghTransformation(BufferedImage bi, int radius);
	
	public BufferedImage noiseReduction(BufferedImage image);
}
